import cv2
import numpy as np

# 1. 读取图像并转换为RGB格式
image = cv2.imread('../img/4.png')  # 请替换为你的图像文件路径
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# 2. 转换为HSV色彩空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 3. 灰度处理
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 4. 定义“旁通”两个灯的位置（示例位置，根据实际情况调整）
# 假设灯的位置为两个矩形区域，左上角和右上角的两个灯
# 这里需要根据实际图像调整坐标
light_positions = [
    {'x': 10, 'y': 10, 'width': 30, 'height': 30},  # 第一个灯的位置和大小
    {'x': 60, 'y': 10, 'width': 30, 'height': 30}   # 第二个灯的位置和大小
]

# 5. 计算每个灯位置的平均亮度
for i, pos in enumerate(light_positions):
    # 提取灯区域的灰度图像
    roi = gray_image[pos['y']:pos['y']+pos['height'], pos['x']:pos['x']+pos['width']]
    # 计算平均亮度
    mean_brightness = np.mean(roi)
    print(f"灯 {i+1} 的平均亮度: {mean_brightness}")

# 显示处理后的图像（可选）
cv2.imshow('Original Image', image)
cv2.imshow('RGB Image', rgb_image)
cv2.imshow('HSV Image', hsv_image)
cv2.imshow('Gray Image', gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()